package cn.iocoder.yudao.module.digital.service.cardchannel.impl.bh;

import cn.iocoder.yudao.module.digital.service.cardchannel.model.*;
import java.util.Map;

/**
 * Description:
 * Author: li
 * Date: 2024/3/1
 */
public interface ICardKeyThirdPartyBHApi {

    /**
     * 生成礼品卡
     *
     * @param requestWrapper
     * @return
     */
    GenerateEGiftResponseWrapper generateCard(GenerateEGiftRequestWrapper requestWrapper);

    /**
     * 查询卡密账户
     *
     * @param index
     * @param apiRecordId
     * @param url
     * @param headers
     * @return
     */
    GetAccountResponseWrapper callGetAccountAPI(int index, Long apiRecordId, String url, Map<String, String> headers);

    GetAccountResponseWrapper queryOrder(String cardOrderId, String accountId);

    /**
     * 撤销礼品卡
     *
     * @param index
     * @param requestWrapper
     * @return
     */
    ReverseEGiftResponse callReverseCardAPI(int index, String generateEGiftRequestId, GenerateEGiftRequestWrapper requestWrapper);


    ProductCatalogsResponse getGetProductCatalogs();

    ProductCatalogResponse getGetProductCatalog(String entityIdUrl);

    ProductResponseWrapper getProduct(String productIdUrl);

}
